"""
编写一个猜数游戏。计算机随机产生一个[1,100]范围内的数，用户可以有最多4次机会来猜数，如果猜的数大或者小，都应该提示用户猜的数是偏大还是偏小。
如果在机会用完之前猜对或者4次机会用完但未猜对，该局游戏都会结束。然后询问用户是否继续新的一局游戏，回答Y/y时继续，否则退出。
在用户猜数过程中要能够处理用户输入异常（输入的不是整数，或者不在[1,00]范围内）的情况，输入异常时这次输入不统计在允许的4次机会里。
"""
import random

def number_guess():
    num_result = random.randint(1,100)
    #print(num_result)
    count = 0
    while count<4:
        try:
            num_guess = int(input("请输入一个[0,100]范围的整数："))
            if num_guess>100 or num_guess<0:
                if num_guess == 8888:
                    print("[作弊模式]您要猜的数是"+str(num_result))
                else:
                    print("请输入一个[0,100]范围的整数!!!")
            else:
                if num_guess == num_result:
                    print("您猜对了!")
                    restart = input("继续游戏(Y/N)...")
                    if restart.upper() == "N":
                        print("游戏结束")
                    elif restart.upper() == "Y":
                        number_guess()
                else:
                    if num_guess>num_result:
                        print("您猜的数太大了")
                    elif num_guess<num_result:
                        print("您猜的数太小了")
                    count = count+1
        except Exception as e:
            print("请输入一个[0,100]范围的整数!!! 错误："+str(e))
            continue
    else:
        print("您已经猜了四次，要猜的数是"+str(num_result))
        restart = input("继续游戏(Y/N)...")
        if restart.upper() == "N":
            print("游戏结束")
        elif restart.upper() == "Y":
            number_guess()
    return

number_guess()